Telecommunications System and Method

ABSTRACT

A telecommunications system includes switching circuitry for coupling a call to a extension coupled to the system, voice processing circuitry for automatically interacting with the call, a microprocessor, a first data bus connected, between the microprocessor and the switching circuitry, and a second data bus connected between the microprocessor and the voice processing circuitry. In the telecommunications system, a method includes coupling, with the switching circuitry, a call to a telecommunications extension coupled to the system, and the voice processing circuitry automatically interacting with the call when the telecommunications extension does not answer the call.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.13/487,762, which issued as U.S. Pat. No. 8,538,002 on Sep. 17, 2013.which is a continuation of U.S. application Ser. No. 12/200,330, whichissued as U.S. Pat. No. 8,194,845, which is a continuation of U.S.application Ser. No. 09/805,395, which issued as U.S. Pat. No.7,421,066, which is a continuation of U.S. application Ser. No.08/873,215, which issued as U.S. Pat. No. 6,252,944, and which wasreissued as RE39,722, which claims benefit of priority to U.S.Provisional Application No. 60/023,749, filed Jun. 12, 1996.

TECHNICAL FIELD

The present invention relates in general to a telecommunications system.

BACKGROUND INFORMATION

Referring to FIGS. 2 and 13, there is illustrated a prior art techniquefor combining telephone and voice mail systems. The dilemma is how toprovide communication between the switching system (“PBX”) 200 and thevoice mail (“VM”) system 201. Communication with the PBX 200 istypically done through either the CO lines or on the station (extension)side. Since CO lines are more of a precious resource than the stationconnections, the prior art system shown in FIG. 2 communicates betweenthe voice mail system 201 and the PBX 200 on the station side usingconnection 202. Connection 202 may be an analog telephone line or via anEKT (electronic key telephone) integrated connection. Alternatively, aproprietary EKT line 204 may be coupled to an analog telephone adapter205, which uses analog line 203 to couple to voice mail system 201.

Such systems are typically configured by programming the PBX 200 toperform a transfer to an extension that is connected to the voice mailsystem 201 upon one or more occurrences, such as when the outside callreceived by the PBX 200 intended for a particular extension receives abusy signal or the extension rings a certain number of times. At thispoint in time, the call resides within the PBX 200 (step 1301). Next,the PBX 200 transfers the call using a flash-hook and then dialing theextension number (step 1302) pertaining to the voice mail system 201 inorder to transfer the call to the voice mail system 201. At this pointin time, the call cow resides within the voice mail system 201, whichmay play a greeting to the incoming call (step 1303). In response to thegreeting played by the voice mail system 201, the call may send asignal, which is detected by the voice mail system 201 (step 1304).Thereafter, die voice mail system may record a message received from thecall (the incoming call resides in the voice mail system 201; step1306), or the voice mail system 201 may transfer the call to a desireddestination, such as a station extension (the incoming call is nowresident within the telephone system 200; step 1305). In-band signaling,a serial connection, etc. may he added to farther improve the system,but it is still configured as two separate systems—a PBX 200 coupled toa separate voice mail system 201.

Another prior art system not shown herein is the use of a personalcomputer with a voice adapter card inserted therein for interconnectingto a switching system. Again, the same problems arise, since there is aseparate voice mail system coupled to a telephone system where softwarein the personal computer operates the voice mail portion.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates, in block diagram form, components of embodiments ofthe present invention;

FIG. 2 illustrates a prior art system coupling a switching system and avoice mail system;

FIG. 3 illustrates, in block diagram form, components of a port cardimplemented within embodiments of the present invention;

FIG. 4 illustrates a flow diagram of a process for recording an incomingcall;

FIG. 5 illustrates a flow diagram of a process for implementing a beeptimer;

FIG. 6 illustrates a flow diagram for terminating a recording;

FIGS. 7A-7D illustrate a flow diagram implementing interactive help;

FIG. 8 illustrates a flow diagram for implementing context sensitivehelp;

FIG. 9 illustrates a flow diagram implementing real-time call screening;

FIG. 10 illustrates functions implemented within a signal processingcircuit within embodiments of the present invention;

FIG. 11 illustrates an electronic key telephone interface;

FIG. 12 illustrates a loop start CO interface;

FIG. 13 illustrates a prior an process for call processing;

FIG. 14 illustrates an EKT;

FIG. 15 illustrates a process for implementing an auto attendant withinembodiments of the present invention; and

FIGS. 16-17 illustrate processes for implementing Quick Groups.

DETAILED DESCRIPTION

In the following description, numerous technical details are set forthsuch as specific word length and specific hardware interfaces, etc. toprovide a thorough understanding of embodiments of the presentinvention. However, it will be obvious to those skilled in the art thatembodiments of the present invention may be practiced without suchspecific details. In other instances, well-known circuits have beenshown m block diagram form in order not to obscure embodiments of thepresent invention in unnecessary detail For the most part, detailsconcerning timing considerations and the like have been omitted inasmuchas such details are not necessary to obtain a complete understanding ofembodiments of the present invention and are within the skills ofpersons of ordinary skill in the relevant art.

The use of the word “a” or “air” when used in conjunction with the term“comprising” in the claims and/or the specification may mean “one,” butit is also consistent with the meaning of “one or more, ”“at least one,”and “one or more than one.” The use of the term “or” in the claims isused to mean “and/or” unless explicitly indicated to refer toalternatives only or the alternatives are mutually exclusive, althoughthe disclosure supports a definition that refers to only alternativesand “and/or.” Throughout this application, the terms “about” or“approximately” are used to indicate that a value includes the inherentvariation of error for the device, the method being employed todetermine the value, or the variation that exists among the studysubjects.

As used in this specification and claim(s), the words “comprising” (andany form of comprising, such as “comprise” and “comprises”), “having”(and any form of having, such as “have” and “has”), “including” (and anyform of including, such as “includes” and “include”), and “containing”(and any form of containing, such as “contains” and “contain”) areinclusive or open-ended and do not exclude additional, unrecitedelements or method steps.

The term “or combinations thereof” as used, herein refers to allpermutations and combinations of the listed items preceding the term.For example, “A, B, C, or combinations thereof” is intended to includeat least one of: A, B, C, AB, AC, BC, or ABC, and if order is importantin a particular context, also BA, CA, CB, CBA, BCA, ACB, BAC, or CAB.Continuing with this example, expressly included are combinations thatcontain repeats of one or more item or term, such as BB, AAA, MB, BBC,AAABCCCC, CBBAAA, CABABB, and so forth. The skilled artisan willunderstand that typically there is no limit on the number of items orterms in any combination, unless otherwise apparent from the context.

While the hardware and methods of this invention have been described interms of described embodiments, it will be apparent to those of skill inthe art that variations may be applied to the hardware and/or methodsand in the steps or in the sequence of steps of the methods describedherein without departing from the concept, spirit, and scope of theinvention.

Refer now to the drawings wherein depicted elements are not necessarilyshown to scale and wherein like or similar elements are designated bythe same reference numeral through the several views.

Referring to FIG. 1, there is illustrated, in block diagram form, system100 for integrating call processing and voice processing using a singleprocessing means, which in this example is a microprocessor 101.Microprocessor 101, which may be a Motorola 68000 class microprocessor,communicates with hard disk 107 using driver circuitry 108. Hard disk107 may store program data, voice prompts, voice mail messages, and allother types of speech used within system 100.

Microprocessor 101 may also include a watchdog timer 109 and real-timeclock source 110.

Microprocessor 101 may be coupled via bus 105 to flash memory 111 anddynamic random access memory (“DRAM”) 112. Flash memory 111 may be usedto store bootstrap data for use during power up of system 100. DRAM 112may store a program accessed by microprocessor 101 during operation ofsystem 100.

Bus 105 also couples microprocessor 101 to signal processing circuitry,which may be a digital signal processor (“DSP”) 102. Digital signalprocessor (“DSP”) 102 may implement a number of functions traditionallyimplemented by discrete analog components.

Referring next to FIG. 10, there are illustrated some functions that maybe

implemented in DSP 102. DTMF receivers 1001 may be implemented usingfrequency domain filtering techniques. DTMF receivers 1001 may detectstandard DTMF (touch-tone) signals or digits.

Automatic gain control (“AGC”) 1002 may be a closed-loop gain controlsystem, which normalizes received audio levels during recording.

Recording buffers 1003, which are coupled to AGC 1002, may receive andstore speech samples after they have passed through AGC block 1002.These speech samples may be converted to μ-law PCM (Pulse CodeModulation) and double buffered (several samples per buffer).Microprocessor 101 may copy the record data out of DSP buffers 1003 intoRAM buffers (not shown), which may be located in the microprocessor 101data RAM area.

Fax tone detector 1004 may be implemented using frequency domainfiltering techniques. Fax tone detector 1004 may detect a standard 1100Hz FAX CNG tone (also referred to as the Calling Tone).

Caller ID modems 1005 may be 1200 band FSK modems similar to Bell202-type modems. Caller ID modems 1005 may be implemented as a frequencydiscriminator where a time delayed (e.g., quadrature) signal ismultiplied by the original signal, low pass filtered, then sliced, whichproduce the square wave caller ID data stream.

Call processing tone generators 3007 may be free running oscillators,which generate the appropriate tones (and tone pairs) that make upindustry standard call processing tones. These tones may include dialtone, busy/reorder tone, ring back tone, single frequency (440 Hz) tone,and DTMF dialer tones.

Play buffers 1008 may replay data from hard disk 107 throughmicroprocessor 101 and place this play data in buffers 1008. This datamay be converted from an 8-bit μ-law PCM signal to 14-bit linear data.

Conference bridges 1006 may allow multiple conference bridges to mixtogether conferees into a multi-party conference. These conferees may bea mixture of inside and outside parties. A combination of “loudestspeaker” and “summing” may be utilized.

DSP 102 may communicate with microprocessor 101 via a host interfaceport (“HIP”) via bus 105. The HIP link may support a command-basedprotocol which may be used to directly read or write DSP memorylocations. DSP 102 may be a RAM-based part and may have its programdownloaded from microprocessor 101. Once downloaded and running,microprocessor 101 (the host) may poll, for events or receive interruptsindicating that data is available. DSP 102 speech connections may bemade over an industry standard 32-time slot, 2.048 megabits per second.(Mb/s) digital serial link 124. Link 124 may occupy one of the digitalhighways implemented by digital cross-point matrix 103. Each service ofDSP 102 may occupy a single time slot. For example, DTMF receiver 1001may occupy time slot 0 while conference bridge circuit 12 may occupytime slot 31.

Digital cross-point matrix 103 may also be coupled to bus 105 andoperate to connect any voice path to any other voice path. Digitalcross-point matrix 103 may be a VLSI (Very Large Scale Integration)integrated circuit. An example of digital cross-point matrix 103 ismanufactured by MITEL Semiconductor Corporation as part No. 8980.Digital cross-point matrix 103 may communicate with microprocessor 101via a memory mapped input/output (“I/O”) scheme. A command/controlprotocol may be used for communication between microprocessor 101 anddigital cross-point matrix 103 via bus 105. Cross-point matrix 103 maybe coupled by highway 124 to DSP 102. Cross-point matrix 103 may becoupled by connection 325 to highway 121. Cross-point matrix 103 mayalso be coupled to peripheral cards by highways 122 and 123. Theperipheral cards are described in further detail below with respect toFIG. 3.

Connections 121-125 are also referred to herein as “highways,” which maybe transmission links using time-division multiplexing (“TDM”) as ameans for transmitting and receiving data.

Digital cross-point matrix 103 may be capable of making 256 simultaneousfully non-blocking connections within system 100. However, system 100may be upgraded by adding additional DSPs and/or cross-point matrices.

Cross-point matrix 103 may make connections using the TDM highway byreceiving instructions from microprocessor 1.01 to interconnect channelswithin the frames of the TDM bit stream. This results in thenon-blocking capability of cross-point matrix 103, and also allows for asingle voice resource, caller, or voice message to be simultaneouslycoupled to multiple other voice resources, station or CO originatedcallers, and/or voice messages.

Gate array 104 may be an SRAM (Static Random Access Memory) baseddevice. An example of gate array 104 is manufactured by XILINX. Gatearray 104 may be responsible for generating system timing. A masterclock signal may be provided by microprocessor 101 at 16.384 MHz. Thisclock signal may be divided down to provide a number of phase coherentsystem clocks such as 4.096 MHz, 2.048 MHz, and 8 KHz (frame sync). Inaddition, a 5-bit time slot counter may be implemented, which allows allthe system CODECs to detect the appropriate time slot to use (e.g.,0-31). An additional divider chain may be included to divide the systemclock down to 20 Hz, which may be used by the ringing generator powersupply (not shown).

Gate array 104 may be downloaded at boot-up by system software. Gatearray 104 may be based on a SRAM architecture. That is, the internalfusible links commonly found in programmable logic may be actuallystored in volatile SRAM. Because of this architecture, gate array 104may be downloaded after power-up. Also, note the added flexibility ofbeing able to modify the logic by simply loading new system software.

Bus 105 may also be coupled to modem 106, which may provide a capabilityof calling into system 100 on a remote basis to load additionalprograms, voice prompts, etc., or updates thereto, into hard disk 107.Modem 106 may be coupled to coder/decoder (“CODEC”) 113, which may becoupled to highway 121. This connection may allow coupling of modem 106through cross-point matrix 103 to CO lines through highway 122 and thep-card described below with respect to FIG. 3.

Highway 121 may also be coupled to a dual subscriber line access chip114, which is well-known in the art, and which may be coupled to analogports 115 and 116, which may provide an ability for system 100 tocommunicate to analog-type connections such as cordless telephones andfax machines.

Highway 121 may also be coupled to CODEC 117, which may be coupled totransformer 118 to a music source 119, which may provide an ability tocouple an external music source to a received call through cross-pointmatrix 103 for such things as providing the received call with music onhold.

Power to system 100 may be provided through switching power supply 120,which may convert AC to the various DC supply voltages needed bycircuitry within system 100.

Referring next to FIG. 3, there is illustrated peripheral-card(“p-card”) 300, which may be coupled to main board 190 of system 100.Main board 190 may communicate with p-card 300 via a multi-drop asyncserial link 307. This connection 307 may be made directly tomicroprocessor 101 (via butlers not shown). P-card 300 may provideinterconnections between CO lines and extension lines to system 100.

Microcontroller 301 may be an 8-bit microcontroller, an example of whichis manufactured by Hitachi as Part No. H8, which may control all thereal-time functions associated with p-card 300. Microcontroller 301 maybe responsible for all low-level communication with the EKTs 1400(electronic key telephones) (see FIG. 14) and CO lines. A low-levelevent is an event which is specific to the hardware and is required tobe handled in real-time. These events may be unique to the EKT or COtrunk protocol. In contrast, high-level events can be abstracted to haveno correlation to actual hardware. An example of a high-level eventmight be “Turn the SPKR LED On.” The corresponding low-level event wouldbe “Send HEX Code 21 to EKT Address 4.” This level of abstraction helpsstabilize the complex system software. Another example would be thatsystem software can send a command to seize a CO trunk without beingconcerned with the low-level differences between a ground start or DIDtrunk. Some of the low-level tasks may include updating EKT LEDs and LCDdisplays, decoding key press messages from the EKTs 1400, scanning theCO status bits, and filtering RING and CO seizure events.

Microcontroller 301 may convert these low-level real-time events tohigh-level events, which may form a protocol referred to as the ESiCommand Language (“ECL”). This ECL protocol may be implemented onmulti-drop async serial channel 307 between main board 190 and allp-cards 300 in system 100. Microcontroller 301 may contain 2 asyncserial ports. One of these serial ports may be connected to main board190, and the other port drives data transceiver and multiplexer 302.

When p-card 300 is plugged into main board 190 (e.g., via ribbon cable(not shown)) a card address is assigned to p-card 300. This card addressmay be read by microcontroller 301 and used to filter commands overcommunication link 307. When main board 190 software wants tocommunicate with the specific p-card 300, the address may be sent in amessage packet, which all p-cards 300 receive. P-cards 300 may match theaddress in the message to the hard wired address on the ribbon cable. Ifa match is made, that p-card 300 responds to the command set.

Microcontroller 301 may contain an internal program memory (not shown),and may be connected to an external SRAM 303. The internal programmemory may contain a bootstrap program, which upon reset or power-up,may request a fresh firmware load from main board 190. This firmwareload may be transferred to SRAM 303. Upon download completion, theprogram may be run from within SRAM 303. This scheme may allow formicrocontroller 301 -firmware to be updated and loaded at any time.

Main board 190 may source all system timing through block 304. Timingsignals to p-card 300 may include a 2.048 MHz clock signal, an 8 KHzframe sync, which may signify the first time slot of a 32 time slothighway, and 5 time slot counter bits, which may represent a binarycount from 0 to 31.

As mentioned above, p-card 300 may be assigned a card slot address whenit is connected to main board 190. This card slot address may be used tocalculate which time slots p-card 300 should be using. The time slotsused for the CO CODECS 1204 (see FIG. 12) may be generated by time slotassignment circuitry contained in the DSLAC chip. There may be twoseparate 2.048 MHz (32 time slot) highways 122 and 123 that run betweenmain board 190 and p-card 300. One (123) may be for the EKTs 1400 andthe other (122) may be for the COs.

Referring to FIGS. 3 and 11, EKT interface 306 describes a connectionbetween system 100 and electronic key telephone (“EKT”) 1400. Thisinterlace may include two physical pairs of wires running between system100 (often referred to as a Key System Unit (“KSU”)) and EKT 1400. Oneof these pairs may support an analog bi-directional audio path, and theother may support a bi-directional digital control channel.

EKT 1400 may be connected to the KSU via transformers 1101 and 1102,providing a high degree of isolation as well as longitudinal balance.Transformer 1101 may be for the audio path, and transformer 1102 may befor the data path on each end of the connection. Power may be suppliedto EKT 1400 by phantoming the power through the center taps oftransformers 1101 and 1102. The KSU may supply a nominal voltage of 36volts DC, which may pass through a positive temperature co-efficientvaristor (“PTC”) 1103. PTC 1103 may act as a resettable fuse, which maybecome very resistive during excessive current flow (such as when ashort in the station wiring occurs). EKT 1400 may regulate down to +12and +5 volts.

The audio path may be a dry analog bi-directional path including atraditional hybrid (2:4 wire converters) on each end. The audio path onp-card 300 may be converted to a 4-wire path by the hybrid circuit ininterface 306. The separate transmit and receive paths may be gainadjusted and connected to CODEC 1104. CODEC 1104 may convert the analogsignals to digital and may present these voice signals to EKT highway123. EKT highway 123 may include a 2.048 Mb/s serial stream, which maybe divided into 32 64 Kb/s time slots. Each CODEC 1104 may occupy onetime slot on highway 123. System 100 may reserve two time slots per EKT1400 for future migration to a fully digital 2B+D EKT where two 64 Kb/sdigital channels may be available to each station instrument.

Timing for CODECs 1104 may be supplied by time slot generation block304, which may be coupled to the time slot counter output from systemtiming block 104 (see FIG. 1).

The EKT data may be produced by a UART (Universal AsynchronousReceiver/Transmitter) in microcontroller 301. This NRZ transmit andreceive data may be presented to data transceiver and multiplexer 302. Asingle data transceiver may be used for all 8 EKT circuits and may bemultiplexed through an 8-channel analog mux to each EKT data transformer1102 in a round-robin fashion.

Messages to EKT 1400 may include commands such as POLL, TURN_ON_LED,WRITE_LCD_CHARACTER, RING PHONE, etc. Response messages from EKT 1400may include a lower level key command in the first 5 bits and a singlehook switch bit in the 8th bit. If the 7th bit of the response messageis set, a high level response command such as FIRMWARE_VERSION orTERMINAL_TYPE may be present in the first 5 bits.

Referring next to FIGS. 3 and 12, the loop start central office (“CO”)lines may be supplied by a local telecommunications company and mayinclude a wet balanced differential audio pair. The term “wet” refers tothe fact that a voltage (e.g., −48 volts) is present on the pair. System100 may request dial tone from the CO by providing a nominal 200 ohmloop across the TIP and RING conductors and may release the connectionby opening the loop.

The CO may ring system 100 by placing a 90 vrms AC, 20 Hz sine wave onthe TIP and RING conductors. System 100 may seize the line by going offhook.

P-card 300 may incorporate a unique circuit, which may monitor thevoltage present across TIP and RING of each CO. This line voltagemonitor circuit 1202 may serve to detect the ring voltage present duringringing (ring detection) and monitoring the CO line status forconditions, such as whether the CO is plugged in or if someone is offhook in front of system 100. The latter may be used to detect theft ofsendee or allow a credit card verification terminal to be used withoutinterfering with normal system operation.

Voltage monitor 1202 may include a balanced differential op-ampconnected across TIP and RING of the CO lines through a very highimpedance (e.g., >10 Mohms). The output, of the four voltage monitorop-amps may be fed to an analog-to-digital converter with a built-inanalog multiplexer (not shown). Microcontroller 301 firmware may monitorthe line voltages.

There may also be a balanced differential AC coupled op amp across theCO TIP and RING to monitor the low level audio tones present duringcaller ID. The output of these op-amps may be selected via an analogswitch during the idle period and may be connected to the CO line CODEC1204.

To correctly terminate the CO line (seizure) care may be taken tosatisfy the DC loop requirements (e.g., −200 ohms) and the AC Impedancerequirements (e.g., −600 ohms). The classic approach has been toterminate TIP and RING with an inductor (called a holding coil), whichhas a large inductance (e.g., >1 Hy) and a DC resistance of (e.g., −200ohms). The inductor separates the AC and DC components to give thedesired effect. The problem is that the Inductor must be large enoughnot to saturate with currents as high as 100 milliamps. An inductor thatsatisfies these requirements is physically cumbersome.

P-card 300 may incorporate a solid state inductor circuit called agyrator (not shown) to implement the holding coil function. This singletransistor may emulate an inductor with the above requirements whiletaking up very little PCS space.

A small solid state relay (not. shown) may be used as the hook switch.When energized, the gyrator holding coil may be placed across TIP andRING closing the loop. The audio present on TIP and RING maybe ACcoupled to a small dry transformer 1203. The secondary of thistransformer 1203 may be connected to the AC termination impedance and tothe CODEC 1204, which may be implemented on a dual subscriber lineaccess chip (“DSLAC”).

High voltage protection may be provided for all paths on the TIP andRING connections. These paths may include TIP to RING, TIP to GROUND,RING to GROUND, and TIP and RING to GROUND. This high voltage protectionis accomplished by first passing the TIP and RING conductors throughpositive temperature coefficient varistors (not shown). These varistorsmay act as resectable fuses. When excessive current flows through thesevaristors, they become resistive thus limiting the current flow. Whenthe excessive current is stopped, the original resistance is restored.

DSLAC 1204 may include two identical circuits, which may contain theCODEC, DSP-based echo canceller, gain control, and time slot assignmentcircuit. DSLAC 1204 may be controlled by microcontroller 301 to setparameters such as echo canceller coefficients, gain coefficients, andtime slots.

Referring next to FIG. 15, the following is an example of how a. callmay be processed by system 100. A call may come in on one of theavailable central office (“CO”) lines (step 1501), wherein a speechpath, for the CO line may be coupled through digital cross-point matrix103 to an available “play” channel (e.g., play buffer 1008) in DSP 102(step 1502). Also during set-up, a connection may be made to anavailable DTMF receiver 1001. A connection may also be made to one ofthe available fax tone detector channels 1004 in case the incoming callis a facsimile transmission. In step 1503, microprocessor 101 may accesshard disk 107 and transfer, speech data to play buffers 1008. Next, instep 1504, a determination may be made whether or not FAX tones havebeen detected by FAX tone detector 1004. If FAX tones are detected, thenin step 1505, microprocessor 101 may instruct digital cross-point matrix103 to connect the incoming call to one of analog ports 115 or 116coupled to DSLAC 114. If FAX tones are not detected, then the processmay determine whether or not DTMF tones have been detected in step 1506.If yes, then in step 1507, digital cross-point matrix 103 may beinstructed to connect the incoming call to an extension coupled top-card 300. If DTMF tones are not detected, then the process maydetermine whether nor not a predetermined amount of time has passed instep 1508. If yes, then the call may be terminated by freeing resourcesin step 1509 and tearing down the call in step 1510 to place the systemin an idle state (step 1511).

If the incoming caller dialed an extension and that extension hasanswered, a speech path connection may be made between the extension andthe incoming CO line.

Referring next to FIG. 14, there is illustrated EKT 1400, which mayinclude many of the well-known features of a typical telephone, such asLCD display 1401, soft feature keys 1402 for such features as Station,Speed Dial, Line Keys, etc, speaker/handset volume control 1404, andmessage and speaker LEDs 1403. Further described in detail below are theprogram/help key 1407, the record/monitor key 1406, and the voice mailkey 1405, which may be part of the fixed feature keys on EKT 1400.

Referring next to FIG. 4, there is illustrated a process for recordingall or a portion of an incoming call after it has been connected to anextension (e.g., EKT 1400) (e.g., by digital cross-point matrix 103 andp-card 300). Such a recording can occur while a user is speaking with anincoming call over the extension (e.g., EKT 1400), However, such arecording of the incoming call may occur using any telecommunicationsdevice coupled to system 100 if it is supplied with some type ofmechanism for initiating the recording process to be discussed. In step401, the user presses record key 1406 on the extension (e.g., EKT 1400).One skilled in the art will, surely appreciate that any means foractivating a record signal may be utilized, such as the depression of aphysical button, the touching of a touch screen (display 1401 couldutilize such a touch screen), or even voice activation of the recordsequence. Such a record sequence activation signal may be transmittedfrom the extension (e.g., EKT 1400) to interface 306 via transformer1102 (see FIG. 11), which may pass the signal to microprocessor 101through data transceiver and multiplexer 302 and microcontroller 301.Next, in step 402, a determination may be made whether or not theextension (e.g., EKT 1400) is connected to a valid call. A valid callmay be defined as energy being detected on the line, and the energy isnot dial tone. If not, the process may proceed to step 403 to ignore therecord activation signal. However, if the extension (e.g., EKT 1400) isconnected to a valid call, the process may proceed to step 404 todetermine whether or not a record resource is available. This may beaccomplished by determining whether or not a recording buffer 1003 isavailable in DSP 102. If not, the process may proceed to step 405 todisplay an error message to the telephone extension user. This may beaccomplished by some type of visual (e.g., on display 1401 or via an LEDon EKT 1400) or audible indication provided by the extension (e.g., EKT1400). This may be implemented by sending from microprocessor 101 tomicrocontroller 301 such an error message, which is then transmitted tothe extension (e.g., EKT 1400) through data transceiver and multiplexerblock 302 and transformer 1102 within interface 306. Next, in step 406,a counter may be incremented to record that a record resource was notavailable.

If in step 404, a recording buffer 1003 is available (e.g., in DSP 102),such a recording buffer 1003 may be assigned to the record sequence instep 407. Thereafter, in step 408, the recording buffer 1003 may beconnected, to the appropriate speech path via highway 124 and digitalcross-point matrix 103. As noted above in the discussion regardingdigital cross-point matrix 103, digital cross-point matrix 103 may havethe ability to couple multiple resources to each other. Therefore,digital cross-point matrix 103 may be able to couple recording buffer1003 (along with automatic gain control function 1002) to the incomingcall, which has previously been connected (and remains connected) to thepertinent extension (e.g., EKT 1400).

Thereafter, in step 409, the recording process begins. In addition torecording the ongoing phone conservation, system 100 may also store thecalled extension number, the incoming calling telephone number, and thedate and time of the call. These data may be stored in a recordingrecord, which may be associated with the actual recording. The recordingdata record may be written to hard disk 107, and may be available fordisplay when the recording is accessed. At the time the recordingbegins, a timer may be started to accumulate the duration of therecording. When the call is completed, the duration may be added to therecording data record, and may be written to hard disk 107. When therecording is played back, the incoming caller phone number, the date andtime of the recording, and the duration may be displayed (e.g., ondisplay 1401). Next, in step 410, a determination may be made whether ornot a beep tone feature has been enabled. If not the process may proceedto step 601 in FIG. 6, However, if a beep tone feature has been enabled,the process may proceed to step 411 to start a beep timer, which may berequired by law in certain jurisdictions. Implementation of step 411 isfurther described below with respect to FIG. 5.

The recording sequence illustrated in FIG. 4 may be implemented as asoftware program stored within hard disk 107, which may be up-loaded toDRAM 112 for operation by microprocessor 101.

Referring next to FIG. 6, there is illustrated a process for terminatinga recording sequence. In step 601, one of the parties (e.g., theincoming call or EKT 1400) may hang up, or the termination of therecording sequence may be initiated by again pressing record key 1406(deactivation of the recording sequence). In response to one of thesesignals, in step 602. the recording process may be stopped. Thereafter,in step 603, the recording, which may have been temporarily storedwithin recording buffer 1003, may be recorded in the mailbox assigned tothe extension (e.g., EKT 1400) that initiated the recording sequence.The other data, such as the called and caller telephone numbers, timeand date information, and recording duration may also be stored withinthe extension telephone's mailbox. Such a mailbox may be stored withinhard disk 107. Thereafter, in step 604, the beep timer may beterminated. Thereafter, in step 605, recording buffer 1003, which mayhave been assigned to this record sequence, may be freed. Then, in step606, digital cross-point matrix 103 may disconnect the speech path fromrecording buffer 1003, and the process may end at step 607.

Referring next to FIG. 5, there is a flow diagram illustrating a processfor implementing a beep timer. A beep timer may be provided so that anaudible beep is heard by both parties during a conservation that isbeing recorded. The beep may be heard every 15 seconds, and may have aconfigurable duration between 40 and 500 milliseconds. In step 501, thebeep timer has been enabled. In step 502, a determination may be madewhether or not recording buffer 1003 is still connected to the pertinentspeech path. If not, the process may proceed to step 503 to terminatethe beep timer. However, if recording buffer 1003 is still connected tothe speech path (e.g., by digital cross-point matrix 103), the processmay proceed to step 504 where the speech path transmit is opened. Next,in step 505, the speech path may be connected to a tone produced by callprocessing tone generator 1007 by DSP 102. As a result, the tone may beheard by one or both of the incoming call and/or extension user. In step506, a delay period (e.g., 200 milliseconds) may be allowed to pass.After passage of the delay period, the tone generator 1007 may bedisconnected from the speech path in step 507. The beep timer processmay be started again in step 508. The process may end step 509. Anadvantage of the recording sequence is that it can he performed withoutany interruption in the connection between the call and the extension(e.g., EKT 1400), Additionally, it may be performed with merely theactivation of a single signal. However, a sequence of signals may beutilized to initiate the recording sequence, such as the entering of acode (e.g., by the user using the touch-tone keypad on EKT 1400).

Furthermore, the recording sequence may be initiated while a user isscreening an incoming call or while a voice message is being placed inthe user's mailbox. These recordings may be accomplished following theprocess described in FIG. 4 as was described earlier for recording allor a portion of an incoming call.

Referring next to FIGS. 7A-7D, there is illustrated a flow diagram forimplementing an interactive help sequence (e.g., verbal user guide)whereby “help” messages may be provided to a user of system 100. Thisfeature can alleviate the need for the user to possess and access awritten help manual. Note, however, that one skilled in the art willappreciate that the process illustrated in FIGS. 7A-7D may be utilizedto play or display any type of messages to a user, and not just thoseassociated with a help menu.

In step 700, the user may press a key or button 1407 on the extension(e.g., on EKT 1400), wherein the key or button 1407 may be associatedwith a help menu (or any other information) stored within system 100. A.signal activated by the pressing of key 1407 may be sent from theextension (e.g., EKT 1400) through p-card 300 to microprocessor 101. Asnoted above with respect to the record sequence, any type of activationsignal may be utilized to initiate the sequence. Next, in step 701,microprocessor 101 may assign a play channel or butter 1008 (e.g.,within DSP 102) to be coupled to the extension (e.g., EKT 1400) throughdigital cross-point matrix 103. Next, in step 702, a determination maybe made whether or not such a play resource (e.g., buffer 1008) isavailable (e.g., in DSP 102). If not, the process may proceed to step713 to display an error message (e.g., on display 1401), or some othertype of error indication, such as a tone or LED light 1403, to the useron the extension (e.g., EKT 1400). This may be done in the same manneras described above with respect to step 405 in FIG. 4, Additionally, areorder tone may be generated (e.g., by call processing tone generator1007) to be connected to the extension (e.g., EKT 1400). Next, in step714, a lock-out state may be entered. In this lockout state, all keypresses on the extension (e.g., EKT 1400) may be ignored, so that theonly option for the user is to hang up the extension. Then, in step 715,the process may wait for the extension (e.g., EKT 1400) to go on hook.

If in step 702 a play buffer 1008 is available, then in step 703,microprocessor 101 may assign, a play buffer 1008 (e.g., within DSP 102)to the extension (e.g., EKT 1400) and digital cross-point matrix 103 mayconnect (e.g., via highway 124), play buffer 1008 and associated filter1009 to the time slot with, which the extension (e.g., EKT 1400) isassociated. Additionally, microprocessor 101 may couple a DTMF receiver1001 (e.g., within DSP 102) to a time slot in digital cross-point matrix103 associated with the extension (e.g., EKT 1400) in order to recognizeany DTMF tones actuated on the extension (e.g., EKT 1400) by the user(see steps 705 and 707-710 described below). Thereafter, in step 704, amessage may be played to the user on the extension (e.g., EKT 1400).Such a message may be downloaded from hard disk 107 through,microprocessor 101 to play buffer 1008. Such a message may be “To accessthe help menu, press 0.” Thereafter, in step 705, a determination may bemade whether or not a key on the extension (e.g., the “0” key on EKT1400) has been pressed by the user. If not, the process may proceed tostep 712 which operates a time out function. If the designated key(e.g., “0”) has been pressed in step 705, the process may proceed tostep 706 where another “Help” prompt may be played by play buffer 1008to the user (e.g., via the speaker on EKT 1400). Such a message may be“To leant how to program your phone, press 1, to learn how to use voicemail, press 2 . . . . ”

Next, in steps 707-710, determinations may be made whether the userdepresses a digit on the touch-tone keys of the extension (e.g., EKT1400) (or voice activation may be utilized in response to the userstating a number) in response to the introductory prompt message 706. ADTMF receiver 1001, which may have been connected to the speech pathassociated with the extension (e.g., EKT 1400) initiating the helpsequence (see step 703), recognizes which of digits 707-710 have beendepressed and may play a corresponding prompt message (see steps 720,740, 760), in response thereto as programmed within system 100. Forexample, in step 707, if the “1” key on EKT 1400 is pressed by the user,then the process proceeds to step 720 in FIG. 7B where an introductoryprompt is played to the user regarding use of the EKT 1400, which mayinclude options presented to the user for pressing certain digits toaccess associated help information. For example, if the “1” key ispressed by the user in step 721, then in step 722 a prompt may be playedto the user regarding how to answer the extension using the features ofEKT 1400. If the “2” key is pressed on EKT 1400 by the user (step 723),then, in step 724, a prompt may be played to the user on how to place acall using EKT 1400, If the “3” key is pressed by the user (step 725),then, in step 726, a prompt may be played to the user on how to transfera call. Similarly, if the “4” key is pressed by the user (step 727),then a prompt may be played to the user on how to conference a call(step 728). If system 100 determines that the “5” key has been pressedon EKT 1400 by the user in step 729, their a prompt on how to answer acall under Call Waiting may be played to the user in step 730.

After each of prompts 722, 724, 726, 728, and 730 have been played tothe user, the process may return to step 720 to repeat the process.However, if the user presses another key (e.g., the key) in step 731,then the process may return to step 706 in FIG. 7A. A time-out featuremay be implemented in step 732. Thus, if the user does not press any keyafter step 720 after a predetermined amount of time, the process mayproceed to step 716 in FIG. 7A.

If the user has pressed the “2” key in step 708, the process may proceedto step 740 (FIG. 7C) to play an Introductory prompt regarding the useof voice mail. Such a message may provide the option to listen tofurther messages upon the pressing of selected keys on the extension(e.g., EKT 1400). For example, if in step 741, it is determined that theuser has pressed the “1” key, then the process, in step 742, may play amessage on how to leave a message. Likewise, steps 743 and 744 mayimplement a process for playing a message on how to transfer a call tovoice mail. Steps 745 and 746 may implement a process for informing theuser on how to pick up an internal voice mail. Additionally, steps 747and 748 may implement a process for informing the user on how to pick upan external voice mail. Likewise, steps 749 and 750 may implement aprocess for informing the user on how to record a personal greeting fortheir voice mail box.

Again, in a manner similar to that described previously with respect tostep 731, in step 751, a process may be Implemented for permitting theuser to return to step 706. The time out function may be implemented instep 752 in manner similar to that described previously with respect tostep 732.

Returning to FIG. 7A, if, in step 709, the user presses another key(e.g., the “3” key), then the process may proceed to step 760 in FIG. 7Dto play an introductory prompt regarding help information on variousphone features. In the process illustrated in FIG. 7D, the user may thenpress any key on the extension (e.g., EKT 1400) and receive helpinformation corresponding to the pressed key. In step 761, the processmay determine whether a key has been hit or pressed by the user. If yes,in step 762, whichever key has been pressed by the user, the signalgenerated by the extension (e.g., EKT 1400) corresponding to the pressedkey is analyzed by DTMF receiver 1001, so that microprocessor 101 canaccess an appropriate help message to play to the user using play buffer1008. This may be performed in step 763, where the key code may be usedas an index into a prompt, or message, array stored within system 100.The playing of the corresponding message may be performed in step 764.The process then may return to step 761 to determine whether or notanother key has been pressed by the user. Step 765 may determine whetheror not. at this time the key has been pressed by the user. If yes, theprocess may then returns to step 706.

The time-out feature implemented in step 766 may provide for an exit tostep 716 in FIG. 7A if no key is pressed by the user within apredetermined amount of time.

Returning to FIG. 7A, if in step 712, a predetermined amount of timedoes pass before the “0” key has been pressed by the user as determinedby step 705, the process may proceed to step 716 to free any accessedresources. Teasing down of the call may be then performed in step 717 sothat the phone is placed in an idle state (step 718). Steps 716-718 mayalso be entered if a predetermined amount of time passes in steps 711,732, 752, or 766.

Referring next to FIG. 8, there is illustrated a flow diagram forimplementing a context sensitive help menu. Such a help sequence can beimplemented so that the help messages sent to the user relate to theparticular function the user is currently implementing. Note that. FIG.8 may apply when the user is already connected to an outside call (acall which is not an intercom call). In step 801, the user may presshelp key 1407. or performs some other type of activation of the helpsequence, such as described, above with respect, to step 701 in FIG. 7A.Thereafter, in step 802, the user may press the specific key that helpis required on. For example, if the user is connected to an outsidecall, and needs to transfer the call, the user may press the help key1407, followed by the transfer key 1408 to receive instructions. Whilethe user is receiving instructions, the other party may hear musicprovided via music source 119. Thereafter, in step 804, a determinationmay be made whether or not a play resource is available in DSP 102. Inother words, a determination may be made whether or not a play buffer1008 is available. If not, an error message may be provided to the userin step 805 in a manner similar to the one described above with respectto step 712 in FIG. 7A.

If a play resource is available in step 804, the process may proceed tostep 806 to assign a play resource. Thereafter, in step 807, the playresource (i.e., play buffer 1008 and associated filter 1009) may beconnected to the speech path to which EKT 1400 is connected. Thereafter,in step 808, the appropriate help message may be played to the user(e.g., by first downloading the help message from hard disk 107 viamicroprocessor .101 to the play buffer 1008). Thereafter, in step 809,alter the help message has been played to the user, the user may bereconnected to the other party in the call. The process may end at step810.

Referring next to FIG. 9, there is illustrated a flow diagram forimplementing real-time call screening. It allows a station user tolisten to calls being left in their mailbox. If desired, the user canfor example lilt the handset of the extension (e.g., EKT 1400) tointercept the call at any time. The process may begin in step 901, wherean incoming call has been routed to an extension and the extension hasnot answered the call After a configurable number of rings, the call istransferred to the extension's mailbox. Thereafter, in step 902, adetermination may be made whether or not the call screening applicationhas been enabled. Each extension may enable call screening mode bypressing key 1406 while the extension is idle. If not, system 100 mayprocess the Incoming call normally in step 907 where the incoming callmay leave a message in the station's mailbox.

However, if in step 902, call, screening has been enabled, the processmay proceed to step 903 where the extension (e.g., EKT 1400) associatedwith the station that was called continues to ring while the mailboxplays a message to the incoming call. In step 904. the incoming callermay hear a beep, which indicates it is the proper time to leave amessage. Next, in step 905, a speech path is set up to the extension(e.g., EKT 1400) that was called, so that the message can be heard onthe speaker as it is being left. Thereafter, In step 906, the user ispermitted to monitor the message while it is being left by the incomingcall. Next, in step 908. the user may for example lift their handset. Ifso, in step 909, the voice mail messaging may be terminated. In step910, the incoming call may be connected to the station user by (e.g.,digital cross-point matrix 103). If in step 908 the user does not forexample lift their handset, then the process may proceed to step 911when the user presses the record/monitor key 1406 (or a similar action),the process may proceed to step 912 to turn the monitor speaker off andthen in step 913 the call may proceed into voice mail in a normalfashion.

Referring next to FIG. 16, there is illustrated a flow diagram forimplementing Quick Groups, which allows a user to leave or copy a voicemail message to multiple destination mailboxes by merely pressing thedesired Direct Station Select (“DSS”) key or dialing the number of theextension. There may be 16 DSS keys at 1402, on each EKT 1400. These DSSkeys can be programmed to provide one button access to extensions andoutside lines. In step 1601, the user of the extension (e.g., EKT 1400)is listening to a voice mail message, which may be a “new” or “old ”voice mail message previously recorded into the user's mail box, or theuser may be listening to the voice mail message while it is beingrecorded by another person into the user's mail box. Thereafter, in step1602, a determination may be made whether or not a specified key (forexample, the “6” key) has been pressed by the user. If not, a time-outoperation may be implemented with step 1613. If the specified key hasbeen pressed by the user In step 1602, the process may proceed to step1603 to play a message to the user, which may prompt to the user toenter a destination. Thereafter, in step 1604, the system may receive acode for the entered destination, which may be a pressed DSS key ordigits dialed by the user on the extension (e.g., EKT 1400).

Next, in step 1605, another message may be played to the user requestingthat the user enter another destination for the voice mail message to besent. In step 1606, a determination may be made whether or not the userhas pressed another DSS key or has entered an extension. If yes, theprocess may return to step 1604 where the signals associated with thepressed digits or DSS key are received. However, if the user has notentered another destination, a determination may be made in step 1607,whether or not a specified key (for example, the “1” key) has beenpressed by the user. If yes, in step 1608, the system may play a messageto the user requesting if the user wishes to record a message to beappended to the beginning of the voice mail message sent by the user.Any message entered by the user may be recorded by a record buffer 1003,which may have been coupled to EKT 1400 by digital cross-point matrix103. Next, in step 1610, the introductory message left by the user andthe voice mail message noted in step 1601 may be copied to all mailboxdestinations entered by the user in steps 1604-1606. The process maythen end at step 1611.

Step 1609 implements a method by which the user can. press a specifiedkey (for example, the “6” key) in order to copy the voice mail messagenoted in step 1601 to destinations entered by the user in step 1610, inthe instance where the user has not decided to record an introductorymessage (see steps 1607-1608).

Step 1612 permits a return to step 1606 for a specified amount of time.If such a specified amount of time has passed without any buttonspressed by the user, then the process may proceed to step 1614 to teardown the call and enter an Idle state.

Referring next to FIG. 17, there is illustrated another process forimplementing Quick Groups. This process enables a user to leave a newmessage entered by the user for recording into a number of destinationmailboxes specified by the user. In step 1701, the user picks up an idleextension (e.g., EKT 1400) for the purpose of leaving a new message in anumber of specified destination mailboxes. In response, in step 1702,the extension (e.g., EKT 1400) goes off hook. Thereafter, in step 1703,the user presses voice mail key 1405. Thereafter, in step 1704, theprocess may provide for the user to press a DSS key or digits associatedwith a destination extension. In step 1705, the user may press the DSSkey or dial the digits associated with each extension which is to beadded to the group to receive the message. In step 1706, once all theextensions to receive the message have been selected, the process mayproceed to step 1707, where upon hearing the voice mail beep of thedestination, the user leaves the desired message. In step 1708. the usermay then hang up the extension (e.g., EKT 1400) by going on hook.

Thereafter, in step 1709, the user may copy the message to all otherdesired destination mailboxes. The process may then end at step 1710.

Although the present invention and its advantages have been described indetail, it should be understood that, various changes, substitutions andalterations can be made herein without departing from the spirit andscope of the disclosed embodiments of the invention.

What is claimed is:
 1. In a telecommunications system comprising amicroprocessor, a first data bus connected between the microprocessorand switching circuitry, and a second data bus connected between themicroprocessor and voice processing circuitry, a method comprising:coupling, with the switching circuitry, a call to a telecommunicationsextension coupled to the system; and the voice processing circuitryautomatically interacting with the call when the telecommunicationsextension does not answer the call.
 2. The method as recited in claim 1,wherein the first and second data busses share at least one data path.3. The method as recited in claim 1, wherein the switching circuitry andthe voice processing circuitry are controlled by the microprocessor. 4.The method as recited in claim 1, wherein the microprocessor isimplemented in a single Integrated chip.
 5. The method as recited inclaim 1, wherein the voice processing circuitry couples the call to avoice mail box when the telecommunications extension does not answer thecall.
 6. The method as recited in claim 1, wherein the voice processingcircuitry automatically interacts with the call when thetelecommunications extension does not go off hook to answer the call. 7.The method as recited in claim 1, wherein the voice processing circuitryfurther comprises a conference bridge operable for coupling the call toone or more internal or external telecommunications devices.
 8. Themethod as recited in claim 1, wherein the system further comprisescircuitry operable for recording all or a portion of the call after thetelecommunications extension is connected to the calf wherein thecircuitry operable for recording operates in response to an activatingsignal activating tactilely initiated on the telecommunicationsextension.
 9. The method as recited in claim 1, wherein the voiceprocessing circuitry automatically interacting with the call furthercomprises: playing a message to the call; receiving a signal sent fromthe call; and connecting the call to the telephone extension in responseto the signal sent from the call.
 10. In a system comprising amicroprocessor, a first data bus connecting the microprocessor toswitching circuitry, and a second data bus connecting the microprocessorto voice processing circuitry, a method comprising: the switchingcircuitry coupling a call to an extension coupled to the system; and thevoice processing circuitry automatically interacting with the call. 11.The method as recited in claim 10, wherein the first and second databusses share at least one data path.
 12. The method as recited in claim10, wherein the switching circuitry and the voice processing circuitryare directly controlled by the microprocessor.
 13. The method as recitedin claim 10, wherein the microprocessor is implemented in a singleintegrated chip.
 14. The method as recited in claim 10, wherein thevoice processing circuitry automatically interacting with the callcomprises coupling the call to a voice mail box when the telephoneextension does not answer the call.
 15. The method as recited in claim10, wherein the extension is operable for establishing a voice channelbetween the extension and the call.
 16. The method as recited in claim10, further comprising coupling the call to one or more internal orexternal telecommunications devices.
 17. The method as recited In claim10, further comprising recording at least a portion of the call afterthe extension is connected to the call.
 18. The method as recited inclaim 17, wherein the recording of at least a portion of the call isinitiated in response to an activating signal tactically initiated onthe telephone extension.
 19. The method as recited in claim 10, whereinthe voice processing circuitry automatically interacting with the callfurther comprises: playing a pre-recorded message to the call; receivinga signal sent from the call; and connecting the call to the extension inresponse to the signal sent from the call tones.
 20. The method asrecited in claim 10, wherein the voice processing circuitryautomatically interacting with the call further comprises playing apre-recorded message to the call when the extension does not answer thecall.